API Security এবং Cross-Domain Requests

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) Cross-Origin Resource Sharing (CORS) |
212
212

API নিরাপত্তা এবং ক্রস-ডোমেন রিকোয়েস্ট (Cross-Domain Requests) দুটি অত্যন্ত গুরুত্বপূর্ণ বিষয় যখন আমরা ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশন তৈরি করি। API নিরাপত্তা নিশ্চিত করে যে আপনার API কেবলমাত্র অনুমোদিত ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য, এবং ক্রস-ডোমেন রিকোয়েস্ট সঠিকভাবে কনফিগার করা থাকে যাতে এক ডোমেন থেকে অন্য ডোমেনে রিকোয়েস্ট নিরাপদে পাঠানো যায়। আসুন, এসবের উপর বিস্তারিত আলোচনা করি।


API Security কী?

API সিকিউরিটি এমন একটি প্রক্রিয়া যা নিশ্চিত করে যে আপনার API-এর মাধ্যমে যে ডেটা আদান-প্রদান হচ্ছে তা সুরক্ষিত থাকে। API নিরাপত্তা ব্যবহারকারীর তথ্য, ডেটাবেস, এবং অন্যান্য সংবেদনশীল সম্পদকে রক্ষা করতে সাহায্য করে। API সিকিউরিটি বিভিন্ন পদ্ধতির মাধ্যমে নিশ্চিত করা হয়, যেমন:

Authentication (প্রমাণীকরণ)

প্রমাণীকরণ হল প্রক্রিয়া যার মাধ্যমে আপনি নিশ্চিত করেন যে কোন ব্যবহারকারী বা সিস্টেম API অ্যাক্সেস করার জন্য বৈধ। সাধারণত, API authentication এর জন্য OAuth, JWT (JSON Web Tokens), এবং API Keys ব্যবহৃত হয়।

  • API Key: একটি বিশেষ কী যেটি API অ্যাক্সেসের জন্য ব্যবহারকারীর কাছে সরবরাহ করা হয়। যদিও সহজ, তবে এটি সুরক্ষিত না হতে পারে যদি যথাযথভাবে হ্যান্ডেল না করা হয়।
  • OAuth: এটি একটি আধিকারিক প্রমাণীকরণ প্রোটোকল যা তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিকে নির্দিষ্ট তথ্য অ্যাক্সেস করতে অনুমতি দেয়, কিন্তু ব্যবহারকারীর পাসওয়ার্ড প্রদান করতে হয় না।
  • JWT (JSON Web Tokens): JWT একটি ওপেন স্ট্যান্ডার্ড যা নিরাপদ ডেটা এক্সচেঞ্জ করার জন্য ব্যবহৃত হয়। এটি প্রমাণীকরণের জন্য খুবই জনপ্রিয় একটি টুল, যেখানে টোকেন ব্যবহার করে ব্যবহারকারী বা ক্লায়েন্টের বৈধতা যাচাই করা হয়।

Authorization (অনুমোদন)

প্রমাণীকরণের পর, আপনাকে নিশ্চিত করতে হবে যে ব্যবহারকারী যেটি করতে চাচ্ছে, তা করার জন্য তার অনুমতি আছে কিনা। সাধারণভাবে Role-based Access Control (RBAC) অথবা Claim-based Access Control ব্যবহৃত হয়। Authorization নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ব্যবহারকারীই API-তে নির্দিষ্ট কার্যক্রম সম্পাদন করতে পারে।

HTTPS (SSL/TLS) ব্যবহার

HTTPS বা SSL/TLS প্রোটোকল API-র জন্য খুবই গুরুত্বপূর্ণ, কারণ এটি ট্রান্সমিশনের সময় ডেটা এনক্রিপ্ট করে। এটি man-in-the-middle attacks প্রতিরোধে সাহায্য করে এবং ক্লায়েন্ট ও সার্ভারের মধ্যে যোগাযোগের নিরাপত্তা নিশ্চিত করে।

Rate Limiting (রেট লিমিটিং)

API-তে অত্যধিক ট্র্যাফিক বা অনুরোধ থেকে সুরক্ষা পেতে rate limiting ব্যবহার করা হয়। এটি নিশ্চিত করে যে কোনো একক ব্যবহারকারী বা সিস্টেম খুব দ্রুত এবং বারবার রিকোয়েস্ট পাঠাচ্ছে না। এটি DDoS (Distributed Denial of Service) আক্রমণ প্রতিরোধে সাহায্য করে।


Cross-Domain Requests কী?

ক্রস-ডোমেন রিকোয়েস্ট হল এমন রিকোয়েস্ট যা একটি ওয়েব পেজ থেকে অন্য ডোমেনের একটি API সার্ভিসে পাঠানো হয়। সাধারণত, ব্রাউজারগুলো ক্রস-ডোমেন রিকোয়েস্টের জন্য Same-Origin Policy অনুসরণ করে, যার মানে হচ্ছে, একটি ওয়েব পেজ অন্য ডোমেনের রিসোর্স অ্যাক্সেস করতে পারবে না যদি না সেটি বিশেষভাবে অনুমোদিত হয়।

যেমন:

  • আপনার ওয়েব অ্যাপ্লিকেশন "domainA.com" থেকে API কল করতে চাচ্ছে "domainB.com" এ।
  • যদি API কলটি "domainB.com" থেকে আসা না হয়, তবে ব্রাউজার CORS (Cross-Origin Resource Sharing) নীতি প্রয়োগ করবে এবং রিকোয়েস্ট ব্লক করে দিবে।

Cross-Origin Resource Sharing (CORS)

CORS হল একটি নিরাপত্তা ফিচার যা ওয়েব অ্যাপ্লিকেশনকে নিরাপদভাবে এক ডোমেন থেকে অন্য ডোমেনে রিকোয়েস্ট করতে দেয়। CORS কনফিগারেশন সার্ভারের মাধ্যমে সম্পন্ন করা হয়, যেখানে API সার্ভার জানিয়ে দেয় কোন ডোমেনগুলো তার রিসোর্স অ্যাক্সেস করতে পারবে এবং কোন HTTP মেথডগুলো অনুমোদিত হবে।

CORS কনফিগারেশন

ASP.NET Core অ্যাপ্লিকেশনেই CORS কনফিগার করা যায়, এবং এটি সাধারণত Startup.cs ফাইলে করা হয়।

  1. CORS কনফিগারেশন ইনস্টল করা: CORS কনফিগার করতে প্রথমে Microsoft.AspNetCore.Cors প্যাকেজটি ইনস্টল করতে হবে।

    NuGet প্যাকেজ:

    dotnet add package Microsoft.AspNetCore.Cors
    
  2. CORS কনফিগারেশন করা: Startup.cs ফাইলে নিচের মতো কনফিগারেশন করতে হবে।

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            options.AddPolicy("AllowSpecificOrigin", builder =>
                builder.WithOrigins("http://example.com")
                       .AllowAnyHeader()
                       .AllowAnyMethod());
        });
    
        services.AddControllers();
    }
    
    public void Configure(IApplicationBuilder app)
    {
        app.UseCors("AllowSpecificOrigin");  // CORS পলিসি ব্যবহার করা
    
        app.UseRouting();
    
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }
    

এখানে AllowSpecificOrigin পলিসি দিয়ে শুধুমাত্র http://example.com ডোমেনকে API অ্যাক্সেস করার অনুমতি দেওয়া হয়েছে। আপনি AllowAnyOrigin() ব্যবহার করে সব ডোমেনের জন্য অ্যাক্সেস খুলে দিতে পারেন, তবে এটি নিরাপত্তার জন্য ঝুঁকি তৈরি করতে পারে।


API Security Best Practices

  1. Secure API Endpoints:
    • প্রত্যেকটি সুরক্ষিত API এন্ডপয়েন্টের জন্য Authentication এবং Authorization ব্যবহার করুন।
    • Role-based Access Control (RBAC) সেটআপ করুন, যাতে শুধুমাত্র নির্দিষ্ট ব্যবহারকারীরা নির্দিষ্ট রিসোর্স অ্যাক্সেস করতে পারে।
  2. Secure Data Transmission:
    • সব সময় HTTPS ব্যবহার করুন। এটি নিশ্চিত করে যে ডেটা এনক্রিপ্ট করা অবস্থায় এক্সচেঞ্জ হবে।
    • JWT বা OAuth ব্যবহার করে API-তে টোকেন ভিত্তিক প্রমাণীকরণ প্রয়োগ করুন।
  3. Rate Limiting and Throttling:
    • API রিকোয়েস্টগুলোর জন্য Rate Limiting ব্যবহার করুন, যাতে অত্যধিক রিকোয়েস্ট ব্লক করা যায়।
    • Throttling এবং IP Whitelisting ব্যবহার করে অবৈধ অ্যাক্সেস আটকান।
  4. API Key Management:
    • API কী সুরক্ষিত রাখতে Environment Variables ব্যবহার করুন।
    • Key Expiration এবং Rotation ব্যবহার করে নিয়মিত API কী পরিবর্তন করুন।

সারাংশ


API সিকিউরিটি অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি API ব্যবহারের সুরক্ষা নিশ্চিত করে এবং অ্যাক্সেস কন্ট্রোল প্রদান করে। Authentication, Authorization, এবং HTTPS এর মাধ্যমে API সুরক্ষা নিশ্চিত করা যায়। অন্যদিকে, CORS হল এক ডোমেন থেকে আরেক ডোমেনে রিকোয়েস্ট পাঠানোর নিরাপদ উপায়। ASP.NET Core-এ সহজেই CORS কনফিগার করে API নিরাপদভাবে ব্যবহারকারী বা সিস্টেমের জন্য অ্যাক্সেসযোগ্য করে তোলা যায়। API সিকিউরিটির বেস্ট প্র্যাকটিস অনুসরণ করে API এবং ব্যবহারকারী তথ্যের সুরক্ষা নিশ্চিত করা যেতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion